package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@RestController
public class FileController {

	/**
	 * 1.文件上传位置.	D:\javaDevelop\image
	 * 2.判断文件目录是否存在
	 * 3.利用api实现文件上传
	 */
	//MultipartFile 接口作用 主要就是优化了文件上传 API集合
	@RequestMapping("/file")
	public String file(MultipartFile fileImage) {
		String fileDir = "D:/javaDevelop/images";
		File file = new File(fileDir);
		if (!file.exists()) {
			file.mkdirs(); //一次性创建多级目录
		}

		//文件名称   文件名+文件后缀
		String fileName = fileImage.getOriginalFilename();

		//将文件整体封装为对象,  文件路径/文件名称
		File imageFile = new File(fileDir + "/" + fileName);

		//实现文件上传,将文件字节数组传输到指定位置
		try {
			fileImage.transferTo(imageFile);
		} catch (IOException e) {
			e.printStackTrace();
		}

		return "文件上传成功";
	}

	/**
	 * 实现商品的文件上传操作
	 * url:http://localhost:8091/pic/upload?dir=image
	 * 参数:	uploadFile 注意字母大小写
	 * 返回值结果: ImageVO对象
	 */

	@Autowired
	private FileService fileService;

	@RequestMapping("/pic/upload")
	public ImageVO upload(MultipartFile uploadFile) {
		return fileService.upload(uploadFile);
	}
}
